package com.day02;

/**
 * 逻辑运算符:
 * 1.逻辑运算符操作的都是布尔类型的变量。
 * 2.开发时优先使用短路运算符
 */
public class LogicTest {
    public static void main(String[] args) {
        //区分 & 与 &&
        //相同点: & 和 && 的运算结果都是相同的。
        //相同点:当符合左边是true时，二者都会执行右边的运算
        //不同点:当符合左边是false时，&继续执行符合右边的运算。&&不再执行符合右边的运算。
        boolean b1 = true;
        b1 = false;
        int num1 = 10;
        if (b1 & (num1++ > 0)) {
            System.out.println("北京");
        } else {
            System.out.println("南京");
        }

        System.out.println("num1 = " + num1);

        boolean b2 = true;
        b2 = false;
        int num2 = 10;
        if (b2 && (num2++ > 0)) {
            System.out.println("我现在在北京");
        } else {
            System.out.println("我现在在南京");
        }
        System.out.println("num2 = " + num2);

        //区分: | 与||
        //相同点:二者的运算结果是相同的
        //相同点2:当符合左边是false是，二者都会执行符合右边的运算
        //不同点:当符合左边是true时，|继续执行，||不在执行符合右边的运算
        boolean b3 = true;
        b3 = false;
        int num3 = 10;
        if (b3 | (num3++ > 0)) {
            System.out.println("我现在在北京");
        } else {
            System.out.println("我现在在南京");
        }
        System.out.println("num3 = " + num3);

        boolean b4 = true;
        b4 = false;
        int num4 = 10;
        if (b3 || (num4++ > 0)) {
            System.out.println("我现在在北京");
        } else {
            System.out.println("我现在在南京");
        }
        System.out.println("num4 = " + num4);
    }
}
